from rest_framework import serializers
from .models import Employee
from django.utils import timezone

# 1、将Employee数据模型转为JSON格式
# 2、此文件用于验证提交的数据是否合法

class EmployeeSerializer(serializers.ModelSerializer):
    class Meta:
        model = Employee        # 关联数据模型
        fields = '__all__'     # 关联所有字段

    def validate_work_id(self, value):       # 检测工号是否唯一的方法
        if Employee.objects.filter(work_id=value).exists():
            raise serializers.ValidationError("该工号已存在")
        return value

    def validate_id_number(self, value):    # 验证身份证格式是否正确
        if len(value) not in [15, 18]:
            raise serializers.ValidationError("身份证号长度应为15位或18位")
        if Employee.objects.filter(id_number=value).exists():
            raise serializers.ValidationError("该身份证号已存在")
        return value

    def validate_phone(self, value):        # 验证手机号格式是否正确
        if len(value) != 11 or not value.isdigit():
            raise serializers.ValidationError("手机号格式不正确")
        return value

    def validate_entry_time(self, value):   # 验证入职时间是否正确
        if value > timezone.now():
            raise serializers.ValidationError("入职时间不能晚于当前时间")
        return value